# -*- encoding: utf-8 -*-
"""

PyCharm date库的使用
2024年10月25日12时34分
by wenyang

文件主要内容:


"""
# datetime 是一个模块 datetime模块中包含了一个datetime类
from datetime import datetime

def main():
    # 获取当前的时间和日期
    now = datetime.now()
    print(now)
    print(type(now))
    # 根据参数创建一个日期和时间
    dt = datetime(2024, 10, 15, 12, 34)
    print(dt)
    # 时间戳就是可以通过使用 timestamp()方法来获取
    # 时间抽就是指的就是从1970年1月1日0时0分0秒开始到现在的时间的秒数
    print(dt.timestamp())
    # 将一个时间戳转换为一个日期
    t = 1603569240.0
    print(datetime.fromtimestamp(t))
    # 将一个时间戳转化为一个UTC标准时间 可以通过使用utcfromtimestamp()方法
    # 转化为本地时间可以通过使用fromtimestamp()方法
    print(datetime.fromtimestamp(t, None))
    print(datetime.fromtimestamp(t))
    # 将str转化为一个datetime对象
    cday = datetime.strptime('2024`10`15 12:34', '%Y`%m`%d %H:%M')
    print(cday)
    # 将datetime对象转化为一个str
    now = datetime.now()
    print(now.strftime('%a, %b %d %H:%M'))
    # 将datetime对象的时间加减
    from datetime import timedelta
    now = datetime.now()
    print(now)
    print(now + timedelta(hours=10))
    print(now - timedelta(days=1))
    print(now + timedelta(days=2, hours=12))
    # 本地时间转化为UTC时间
    from datetime import timezone
    tz_utc_8 = timezone(timedelta(hours=8))
    now = datetime.now()
    print(now)
    print(now.astimezone(tz_utc_8))
    # 日期的加减
    from dateutil.relativedelta import relativedelta
    now = datetime.now()
    print(now)
    print(now + relativedelta(years=1))
    print(now - relativedelta(months=3))
    print(now + relativedelta(months=6, days=15))
    # 时区的转换
    from pytz import timezone
    import pytz
    now = datetime.now()
    print(now)
    tz_utc_8 = timezone('UTC+8')
    tz_bj = timezone('Asia/Shanghai')
    now = datetime.now()
    print(now)
    dt = now.replace(tzinfo=tz_utc_8)
    print(dt)
    dt = datetime.now().astimezone(tz_bj)

if __name__ == "__main__":
    main()
